/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ufes.gpf.sgm.state.incluirMandado;

import edu.ufes.gpf.sgm.model.Pessoa;
import edu.ufes.gpf.sgm.presenter.IncluirMandadoPresenter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Danilo
 */
public class EstadoVisualizacaoMandado extends AbstractStateIncluirMandado {

    public EstadoVisualizacaoMandado(IncluirMandadoPresenter objeto) {
        super(objeto);
        objeto.getView().setTitle("Visualizar Pessoa");
        preencherTela();
        bloquearTelaPraEdição();
        objeto.getView().getBtnSalvar().setText("Editar");
        objeto.getView().getBtnSair().setText("Sair");
        objeto.getView().getBtnSalvar().setEnabled(true);
        objeto.getView().getBtnSair().setEnabled(true);
        objeto.getView().getBtnSair().requestFocus();
    }

    @Override
    public void salvar() {
        objeto.setEstado(new EstadoEdicaoMandado(objeto));

    }

    private void preencherTela() {
        objeto.getView().getTxtnumPessoal().setText(String.valueOf(objeto.getMandado().getNumPessoal()));
        objeto.getView().getTxtNumAutos().setText(String.valueOf(objeto.getMandado().getNumAutos()));
        objeto.getView().getTxtNumCentral().setText(String.valueOf(objeto.getMandado().getNumCentral()));
        objeto.getView().getTxtDataDistribuicao().setText(String.valueOf(objeto.getMandado().getDataDistribuicao()));
        objeto.getView().getTxtDataRecebimento().setText(String.valueOf(objeto.getMandado().getDataRecebimento()));
        objeto.getView().getCbmTipoMandado().setSelectedItem(objeto.getMandado().getTipoMandado());
        ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>();
        int[] linhas = objeto.getView().getTblPessoas().getSelectedRows();
        for (int i = 0; i < linhas.length; i++) {
            pessoas.add(objeto.getPessoas().buscarPorId(Integer.parseInt(objeto.getView().getTblPessoas().getValueAt(i, 0).toString())));
        }
        carregarListaPessoas(pessoas);
    }

    public final void carregarListaPessoas(Collection<Pessoa> pessoas) {
        DefaultTableModel dtm = (DefaultTableModel) objeto.getView().getTblPessoas().getModel();
        dtm.setNumRows(0);
        for (Iterator<Pessoa> it = pessoas.iterator(); it.hasNext();) {
            Pessoa p = it.next();
            String linha = p.toString();
            String valores[] = linha.split("%");
            dtm.addRow(new Object[]{valores[0], valores[1], valores[3]});
        }

        objeto.getView().getTblPessoas().setModel(dtm);
    }
}
